import wx from 'weixin-js-sdk';
import ajax from '../../api/ajax';

// 发起获取signature请求  
function getSignature() {
  var url = window.location.origin + '/';
  ajax.signature({ url }).then(res => {
    const { code, data } = res
    console.log('data: ', data);
    if (code === 200) {
      setShare(data);
    }
  });
}

// 设置分享数据  
function setShare(signature) {
  uni.setStorageSync('signature', JSON.stringify(signature));

  wx.config({
    debug: true, // 开启调试模式  
    appId: signature.appId, // 必填，公众号的唯一标识  
    timestamp: signature.timestamp, // 必填，生成签名的时间戳  
    nonceStr: signature.nonceStr, // 必填，生成签名的随机串  
    signature: signature.signature, // 必填，签名  
    jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData'] // 必填，需要使用的JS接口列表  
  });

  wx.ready(function () {
    wx.updateAppMessageShareData({
      title: '自定义分享标题', // 分享标题  
      desc: '自定义分享描述', // 分享描述  
      link: window.location.href, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致  
      imgUrl: 'https://example.com/path/to/icon.png', // 分享图标  
      success: function () {
        console.log('分享到朋友圈成功');
      }
    });

    wx.updateTimelineShareData({
      title: '自定义朋友圈标题', // 分享标题  
      link: window.location.href, // 分享链接  
      imgUrl: 'https://example.com/path/to/icon.png', // 分享图标  
      success: function () {
        console.log('分享到朋友圈成功');
      }
    });
  });

  wx.error(function (res) {
    // 分享失败处理逻辑  
    console.error('微信分享失败:', res);
  });
}

// 分享操作触发函数  
export default function share() {
  const _signature = uni.getStorageSync('signature');
  if (_signature) {
    let signature = JSON.parse(_signature);
    // 检查签名是否过期（此处为示例逻辑，具体实现可能有所不同）  
    if (isSignatureValid(signature)) {
      setShare(signature);
    } else {
      getSignature(); // 签名过期，重新获取  
    }
  } else {
    getSignature(); // 签名不存在，直接获取  
  }
}

// 检查签名是否有效的辅助函数（需要根据实际情况实现）  
function isSignatureValid(signature) {
  // 实现签名有效性检查逻辑，比如对比时间戳等  
  // 示例中省略了具体实现细节，需要开发者根据实际情况编写
  return true; // 假设签名始终有效（仅为示例）  
}